home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / util / RuleSplitPane.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  2.7 KB  |  118 lines

  1. package com.extensibility.util;
  2.  
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.event.ComponentAdapter;
  6. import javax.swing.JComponent;
  7. import javax.swing.JSplitPane;
  8.  
  9. public class RuleSplitPane extends JSplitPane {
  10.    static final int SIGNIFICANT_MOVE = 5;
  11.    static final double SIGNIFICANT_PCT_MOVE = 0.05;
  12.    boolean fixLeft;
  13.    int fixSize;
  14.    double locPct = (double)0.5F;
  15.    int lastDividerLocation = 0;
  16.    ResizeDetector resizeDetector = new ResizeDetector(this);
  17.    ComponentAdapter resizeListener = new 2(this);
  18.  
  19.    public RuleSplitPane(int var1, Component var2, Component var3) {
  20.       super(var1, var2, var3);
  21.       var2.addComponentListener(this.resizeDetector);
  22.    }
  23.  
  24.    protected int getWhich(Dimension var1) {
  25.       return super.orientation == 1 ? var1.width : var1.height;
  26.    }
  27.  
  28.    public void setLeftComponent(Component var1) {
  29.       Component var2 = ((JSplitPane)this).getLeftComponent();
  30.       super.setLeftComponent(var1);
  31.       if (var2 != null) {
  32.          var2.removeComponentListener(this.resizeDetector);
  33.       }
  34.  
  35.       if (var1 != null) {
  36.          var1.addComponentListener(this.resizeDetector);
  37.       }
  38.  
  39.       ((JComponent)this).revalidate();
  40.       ((Component)this).repaint();
  41.    }
  42.  
  43.    public void setRightComponent(Component var1) {
  44.       super.setRightComponent(var1);
  45.       ((JComponent)this).revalidate();
  46.       ((Component)this).repaint();
  47.    }
  48.  
  49.    protected int getSpan() {
  50.       return this.getWhich(((Component)this).getSize()) - super.dividerSize;
  51.    }
  52.  
  53.    public void addNotify() {
  54.       super.addNotify();
  55.       ((Component)this).addComponentListener(new 1(this));
  56.    }
  57.  
  58.    public void removeNotify() {
  59.       super.removeNotify();
  60.       ((Component)this).removeComponentListener(this.resizeListener);
  61.    }
  62.  
  63.    public void updateRule(int var1) {
  64.       if (this.locPct >= (double)0) {
  65.          if (Math.abs((double)var1 / (double)this.getSpan() - this.locPct) < 0.05) {
  66.             return;
  67.          }
  68.  
  69.          this.locPct = (double)var1 / (double)this.getSpan();
  70.       } else if (this.fixLeft) {
  71.          if (Math.abs(this.fixSize - var1) < 5) {
  72.             return;
  73.          }
  74.  
  75.          this.fixSize = var1;
  76.       } else {
  77.          if (Math.abs(this.fixSize - (this.getSpan() - var1)) < 5) {
  78.             return;
  79.          }
  80.  
  81.          this.fixSize = this.getSpan() - var1;
  82.       }
  83.  
  84.    }
  85.  
  86.    public void setDividerRule(double var1) {
  87.       this.locPct = var1;
  88.    }
  89.  
  90.    public void setDividerRule(boolean var1, int var2) {
  91.       this.fixLeft = var1;
  92.       this.fixSize = var2;
  93.       this.locPct = (double)-1.0F;
  94.    }
  95.  
  96.    public int getDividerRulePos() {
  97.       return this.fixSize;
  98.    }
  99.  
  100.    public double getDividerRulePct() {
  101.       return this.locPct;
  102.    }
  103.  
  104.    public void resetDividerLoc() {
  105.       int var1;
  106.       if (this.locPct >= (double)0) {
  107.          var1 = (int)((double)this.getSpan() * this.locPct);
  108.       } else if (this.fixLeft) {
  109.          var1 = this.fixSize;
  110.       } else {
  111.          var1 = this.getSpan() - this.fixSize;
  112.       }
  113.  
  114.       this.lastDividerLocation = var1;
  115.       ((JSplitPane)this).setDividerLocation(var1);
  116.    }
  117. }
  118.